class Person:
    def __init__(self, name, age):
        # 私有属性，不应该从外部直接访问
        self.__name = name
        self.__age = age

    # 获取姓名的公共方法
    def get_name(self):
        return self.__name

    # 设置姓名的公共方法
    def set_name(self, name):
        if not isinstance(name, str):
            raise ValueError("请输入字符串作为名称")
        self.__name = name

    # 获取年龄的公共方法
    def get_age(self):
        return self.__age

    # 设置年龄的公共方法，带有验证
    def set_age(self, age):
        if not isinstance(age, int) or age <= 0:
            raise ValueError("年龄必须是整数,且大于0")
        self.__age = age


# 使用Person类
person = Person("张三", 30)

# 通过公共方法访问和修改属性
print(person.get_name())  # 输出: 张三
print(person.get_age())  # 输出: 30

person.set_name("李四")
person.set_age(35)

print(person.get_name())  # 输出: 李四
print(person.get_age())  # 输出: 35

# 尝试直接访问私有属性（不推荐，并且在实际运行时不会成功，因为它们是“私有”的）
# print(person.__name)  # 这会引发AttributeError
# print(person.__age)  # 这同样会引发AttributeError
